Support transactionReceipts subscription in eth_subscribe#17828
Merged
canepat merged 10 commits intoerigontech:mainfrom Dec 16, 2025
Merged
Support transactionReceipts subscription in eth_subscribe#17828canepat merged 10 commits intoerigontech:mainfrom
canepat merged 10 commits intoerigontech:mainfrom
Conversation
128d006 to
ca1cd2a
Compare
canepat
requested changes
Nov 26, 2025
Member
canepat
left a comment
There was a problem hiding this comment.
Thanks for your contribution!
I've requested some changes, and you need to rebase + resolve conflicts
b5f9d2c to
b6e6ee8
Compare
Member
|
@rlaisqls sorry for being late here, it's been an intense week. LGTM, please one more rebase to resolve conflict on |
Co-authored-by: canepat <16927169+canepat@users.noreply.github.com>
- Update ethutils import path to execution/types/ethutils - Update shards import path to node/shards - Fix accounts.Address type conversion using .Value()
b6e6ee8 to
a07e1df
Compare
Contributor
Author
|
@canepat Thanks for the review! Rebased and conflicts resolved |
canepat
approved these changes
Dec 16, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR implements real-time transaction receipt subscriptions via WebSocket (
eth_subscribe("transactionReceipt")), inspired by ethereum/go-ethereum#32697.Clients can now receive receipts immediately as blocks are processed, without polling.
resolve #17596
Implementation
Added new subscribe type
transactionReceipts(Core -> RPC module) Extended gRPC protocol with structured receipt data
Replaced
RecentLogswithRecentReceiptsstructure that handles both receipts and logs:Implemented filtering at both core (execution node) and RPC daemon levels, similar to existing log subscription architecture
Filter Example
Both levels support:
No filter (subscribe to all receipts):
{ "jsonrpc":"2.0", "id":1, "method":"eth_subscribe", "params":[ "transactionReceipts", {} ] } or { "jsonrpc":"2.0", "id":1, "method":"eth_subscribe", "params":[ "transactionReceipts", {"transactionHashes": []} ] }Transaction hash filter:
{ "jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": [ "transactionReceipts", {"transactionHashes": ["0x123...","0x456..."]} ] }Response Example
{ "jsonrpc": "2.0", "method": "eth_subscription", "params": { "subscription": "0x5465f633defb53ab2b63275bef29b6f7", "result": { "blockHash": "0xe1699970061c7bb45e54bf6235ebf66c467f7292ece610955fd818075fc20360", "blockNumber": "0x11cffe7", "contractAddress": null, "cumulativeGasUsed": "0x1c65c", "effectiveGasPrice": "0x7", "from": "0x62669a879f5c90d9f8aec826882b2da6cc28b352", "gasUsed": "0x1c65c", "logs": [ { "address": "0xf4ebcc2c077d3939434c7ab0572660c5a45e4df5", "data": "0x000000000000000000000000000000000000000000000000000000012a153440000000000000000000000000000000000000000000000000000000006910841b", "topics": [ "0xdd84a3fa9ef9409f550d54d6affec7e9c480c878c6ab27b78912a03e1b371c6e", "0x000000000000000000000000000000000000000000000000370e65a434afcdd5" ] } ], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000020000200000000000000000000000000000000000000000800000000200201000000000100000000020000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000010000000200000008000008000004000000000000000000002000000000000040000000000000000000000000000000000000020000000000800000000000000000000000000000000000000000000000000000000", "status": "0x1", "to": "0x4d8193f845eb3540e0bda9451296600362e22b15", "transactionHash": "0x320e1f62b23fb374938c32c910fa1e6c00c3cace6ba39f052f860c3520a21380", "transactionIndex": "0x0", "type": "0x2" } } }